perm filename CHESS.AUG[ESS,JMC] blob sn#060977 filedate 1973-09-01 generic text, type T, neo UTF8
Print Branch A: .11
V: w

11 CHESS<PBS>
   11A FOURTH UNITED STATES COMPUTER CHESS CHAMPIONSHIP
   from
   ACM-73 NEWS RELEASE
      11A1 A record field of between twelve and sixteen teams will
      participate in the Fourth United States Computer Chess
      Championship.  The tournament will be held as a Special Event at
      the ACM's Annual Conference in Atlanta, Georgia.  The first two
      rounds of play will be held on Sunday, August 26, the third round
      on the evening of August 27, and the final round on the evening
      of August 28.
      11A2 Returning to defend their title is the team of Larry Atkin,
      Keith Gorlen, and David Slate.  Their program has won the
      previous three tournaments without the loss of a game.  Their
      program, called Chess 4.0, uses a CDC 6400 on the Northwestern
      University campus.  Also entered are programs written by Jim
      Gillogly (PDP-10), George Arnold and Monty Newborn (Data General
      Supernova), Dennis Cooper and Ed Kozdrowicki (UNIVAC 1108), Ken
      Thompson (PDP-11/45), and Al Zobrist, Fred Carlson, and Charles
      Kalme (IBM 370/155).  Many of the programs were developed at
      America's leading universities; included are Georgia Tech., MIT,
      Carnegie-Mellon, USC, U. Cal-Berkeley, Dartmouth, Texas A&M, and
      Columbia.
      11A3 David Levy, an international Chess Master from England, will
      serve as tournament director.  A panel discussion, moderated by
      Ben Mittman, is also scheduled during the ACM's conference.  The
      tournament is being sponsored in part by Control Data
      Corporation, International Business Machine Corporation,
      Sperry-UNIVAC, and National Data Industries. <PES>
      11A4 Tournament Participants <PES>
   11B RESEARCH PROGRESS REPORT IN COMPUTER CHESS* <LBS=1><GCR>by
   <GCR>Richard J. Cichelli
   901 Whittier Drive
   Allentown, Pennsylvania 18103
      11B1 This working paper describes a developing brute-force
      middle-game chess program.  New concepts are clarified and
      comparisons with existing programs are made.  The mechanisms
      described are sufficient to enable information collected during
      search to be used for dynamic search ordering and dynamic forward
      pruning.  The suggested mechanisms replace the static plausible
      move generators in existing programs.
      11B2 Background
         11B2A Brute force chess programs are characterized by their
         large game tree searches and simple evaluation functions.  In
         addition, little of their computational time is spent in
         computations involving chess specific knowledge.  James
         Gillogly's TECH [1] is an example of such a program.  TECH
         searches as many as 500,000 end nodes, uses only material for
         evaluation, and spends less than 5% of its time applying chess
         specific knowledge.
         11B2B More sophisticated programs such as CHESS 3.6 (the
         currently reigning world champion) and the Greenblatt program
         manage to search effectively by using highly developed
         plausible move generators.  These routines embody much of the
         chess program's chess knowledge; at each depth, at move
         listing time, they order and forward prune the legal move
         list.  A good ordering increases the probability of alpha-beta
         cutoffs; forward pruning further limits the game tree size and
         hopefully keeps it manageable while still including the
         analysis tree (i.e., the tree a Grandmaster would search in
         the same position).  The Zobrist [2], CHESS 3.6 (Slate) [3],
         and Greenblatt [4] programs have game trees with fewer than
         20,000 end nodes.
         11B2C Dr. Zobrist's program is an attempt to produce the
         ultimate plausible move generator by giving much chess
         knowledge to the program.  Alternatively, my approach is to
         gather information during search and to use this
         position-specific data to guide further search.
         11B2D --------------------------------
         11B2E *[Ed. Note:  Mr. Cichelli has indicated that he welcomes
         responses (questions, rebuttals, etc.) on this paper from
         interested readers.
      11B3 Overview <PBS>
         11B3A The brute force chess program I am currently developing
         uses two types of information to order searchable plies and to
         forward prune.  Refutation data is global to the tree and
         DEPTH-minus-two data is local to move pairs (1 move = two
         plies).
      11B4 Refutation Data
         11B4A Given a ply "A" such that making "A" leads to a
         non-terminal position, then some ply "B" is the best reply to
         "A".  In short, B refutes A.  Should a ply A' which is similar
         to A (i.e., same piece, same square-to) be made subsequently
         in the game tree then should B' exist, it will probably be a
         good ply to try first.  To implement this and its logical
         extension, best (and possibly, second best) refuters against
         moving the piece of A and moving to the square-to of A, simply
         requires an array indexed by side, piece, and square-to
         containing the refutation piece, square-to, and its value
         (i.e., the backup value B got when refuting A).
         11B4B Refutation data is continuously updated with superior
         refuters encountered during search.  Since A - B pairs are not
         considered in the context of a particular game tree node but
         span the entire search tree, refutation data collection is
         said to be global to the tree.
      11B5 DEPTH-Minus-Two Data
         11B5A If one visualizes a depth first game tree being grown
         down and from the left, then backup values pass up and to the
         right.  Thus, for nodes at depths greater than three, there
         are plies in lists at DEPTH-2 which are similar (i.e., same
         piece and square-to) to plies at the current DEPTH.  Each ply
         at the current DEPTH will lead to a node which will receive a
         backup value and will probably receive this value before the
         node for the similar ply at DEPTH-2 is reached and evaluated. 
         Plies which do well at DEPTH+2 should be searched earlier at
         DEPTH, and those which do poorly at DEPTH+2 may not need to be
         searched at all at DEPTH.  Significantly, previously
         accumulated DEPTH-2 data can be used in a preliminary ordering
         of plies at DEPTH.  The following diagrams illustrate the two
         types of game tree information gathering. <PEL><BM=62><GCR=28>
         11B5B To implement this DEPTH-minus-two heuristic, the program
         needs to maintain, at each depth, a list of plies with storage
         with each ply for three backup value data elements (a total,
         count, and average).  After listing the plies at DEPTH, a
         seaach of the DEPTH-2 plies is made and back pointers are set
         for similar plies.  Preordering can be accomplished by setting
         initial counts of 1 and setting the total and average equal to
         the previous average at DEPTH-2.*
         11B5C By listing the opponent's moves at DEPTH 0 and making
         "no move", the program can provide storage for DEPTH-2 values
         for DEPTH=2.  Searching the ply lists is speeded by listing
         plies, by piece, in the same order at each move, as
         implemented in Bell's algorithm [5].
         11B5D --------------------------------
         *After the initialization of move values with DEPTH-2 data,
         refutation ordering data can be applied to those refuters of
         the previous move by adding N times the refutation value to
         the total, increasing the count by N, and calculating the new
         average.  (I have used the values 3,2,1,2,1 for N when
         applying refutation values to the best refuter, best and
         second best against moved piece, and best and second best
         against moved square-to).
      11B6 Forward Pruning<PBS><BM=58>
         11B6A Since one can expect more than 80% of the plies at any
         two successive moves to be the same, plies at DEPTH will have
         counts about <GCR=5>
         11B6B With a width of 7, one would expect a count of nearly
         300.  The contention here is that the average, generated for
         high counts, approaches the backup value of that ply's
         successor node, i.e., predicts the backup value.
         11B6C Within this information framework a ply selector would
         function by referencing the ply list at current DEPTH and
         picking the best unsearched ply (by its average) and passing
         it to the MAKEMOVE routine if there existed some ply in the
         ply list whose count was below the threshold for the current
         DEPTH and/or whose average was not worse by some factor than
         the DEPTH's current alpha-beta value.  Note:  a feedback
         mechanism is hereby created, for heavy pruning at some DEPTH
         will result in lower counts at predecessor DEPTHs and thus
         broaden search at predecessor levels.
         11B6D I am experimenting with broad, shallow searches (3 ply
         to capture-promote-check quiessence) to initialize the
         refutation and ply 0 and 1 values followed by a much deeper,
         narrower search.  The evaluation function is material (Pawn =
         100) and mobility (1 for each legal ply).
      11B7 Implementation
         11B7A My program is approximately 1500 short lines of PASCAL
         code [6] and performs nearly all of the functions described
         above.  It also includes an extensive user interface.  So far,
         it has been a part-time four week effort and will probably be
         ready for actual games in two more weeks.  Batteries of
         searching strategies are being compared; this is easily
         accomplished because the SELECTMOVE routines are parameters to
         the SEARCH routine. 
         11B7B With the PASCAL assignment checking feature negated and
         ply records packed for optimal use of storage, the program
         [including the 5K (octal) PASCAL operating system] will
         probably run in less than 25K (octal) 60 bit words on the CDC
         6400.
      11B8 Conclusion<PBS><LBS=2>
         11B8A The mechanisms described here present methods for using
         information gathered during search to dynamically order and
         prune plies in a depth-first game tree.  Though the example
         problem space is chess, the concepts and methods are not in
         any way chess dependent.  I suspect, however, that the methods
         may not be applicable to games like GO (too large a potential
         search space) or Kalah (too large a change between plies).
      11B9 REFERENCES
         11B9A [1] Gillogly, James J., "The Technology Chess Program,"
         Carnegie-Mellon University, Department of Computer Science,
         1971.
         11B9B [2] Zobrist, Albert L. and Frederic R. Carlson, Jr., "An
         Advice-Taking Chess Computer," SCIENTIFIC AMERICAN, June, 1973
         11B9C [3] Slate, David J., Larry Atkin, and Keith Gorlen,
         CHESS 3.6, Vogelback Computing Center, Northwestern
         University.
         11B9D [4]Greenblatt, R.D., D. Eastlake, and S. Crocker, "The
         Greenblatt Chess Program," Proc. AFIPS 1967 FJCC.
         11B9E [5] Bell, A.G., "How to Program a Computer to Play Legal
         Chess," The Computer Journal, May, 1970.
         11B9F [6] Wirth, Niklaus, "The Programming Language Pascal
         (Revised Report)," University of Colorado Computing Center,
         1972.
   11C RECENT PAPERS ON CHESS<PBS>
      11C1 SKILL IN CHESS <GCR>by <GCR>Herbert A. Simon and William G.
      Chase
      Psychology Department, Carnegie-Mellon University
      Pittsburgh, Pennsylvania
      In AMERICAN SCIENTIST, Vol. 61, No. 4, pp. 394-403
      July-August 1973
         11C1A Experiments with chess-playing tasks and computer
         simulation of skilled performance throw light on some human
         perceptual and memory processes.
      11C2 COKO: THE COOPER-KOZ CHESS PROGRAM <GCR>by <GCR>Edward W.
      Kozdrowicki
      University of California at Davis
      and
      Dennis W. Cooper
      Bell Telephone Laboratories
      Whippany, New Jersey
      Communications of the ACM, Vol, 16, No. 7, pp. 411-427
      July 1973
         11C2A COKO III is a chess player written entirely in Fortran. 
         On the IBM 360-65, COKO III plays a minimal chess game at the
         rate of .2 sec cpu time per move, with a level close to lower
         chess club play.  A selective tree searching procedure
         controlled by tactical chess logistics allows a deployment of
         multiple minimal game calculations to achieve some optimal
         move selection.  The tree searching algorithms are the heart
         of COKO's effectiveness, yet they are conceptualy simple.  In
         addition, an interesting phenomenon called a tree searching
         catastrophe has plagued COKO's entire development just as it
         troubles a human player.  Standard exponential growth is
         curbed to a large extent by the definition and trimming of the
         Fischer set.  A clear distinction between tree pruning and
         selective tree searching is also made.  Representation of the
         chess environment is described along with a strategical
         preanalysis procedure that maps the Lasker regions.  Specific
         chess algorithms are described which could be used as a
         command structure by anyone desiring to do some chess program
         experimentation.  A comparison is made of some mysterious
         actions of human players and COKO III.

*